#ifndef log_Helper_Functions_h
#define log_Helper_Functions_h

#include <utility/Streams.h>

namespace serika
{
	namespace log
	{
		template <typename Msg>
		ut::String AddFunctionName(const ut::String& functionName, const Msg& msg)
		{
			ut::Sstream ss;
#ifdef WIN32
			ss << functionName << _T("(): ") << msg;
#else
			ss << functionName << _T(": ") << msg;
#endif
			return ss.str();
		}

//#ifdef UNICODE
//		ut::String AddFunctionName(const ut::String& functionName, const std::string& msg)
//		{
//			ut::Sstream ss;
//#ifdef WIN32
//			ss << functionName << "(): " << msg.c_str();
//#else
//			ss << functionName << ": " << msg.c_str();
//#endif
//			return ss.str();
//		}
//#endif

		static ut::String GetFunctionName(const ut::String& functionName)
		{
			return functionName + _T("(): ");
		}

		template <class Value>
		ut::String ToString(const ut::String& name, const Value& value)
		{
			ut::Sstream ss;
			ss << ", " << name << "=" << value;
			return ss.str();
		}
	}
}

#endif

